import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * En esta clase se crean las opciones para la validación de los movimientos.
 * 
 * @author Ulises Yamil Castorena Caldera 
 * @version 1.0
 */
public class Policia extends Enemigo
{
    /**
     * Contructor de la clase Policia, se igualan los valores y se crea el objeto para mostrar la imagen.
     * @param valor Dependiendo del valor que tenga va a ser la ubicación del objeto.
     */
    public Policia(boolean valor)
    {
        ubic = valor;
        img = new GreenfootImage("poli.png");
        img.scale(120,120);
        if(!ubic)
           setImage(img);
        else 
        {
            img.mirrorVertically();
            setImage(img);
        }
    }
    
    /**
     * Método Act de la clase Policia, en el se muestra la imagen, se mueve y se valida la opcion para remover la imagen.
     */
    public void act() 
    {
        setImage(img);
        super.mueve();  
        intersecta();
    }    
    
    /**
     * Método que valida si un objeto de esta clase se topa con otro objeto y si se topa con uno manda a un policía en su defensa o si el objeto
     * llega al final de la pantalla.
     */
    public void intersecta()
    {
        Actor otro;
        otro = getOneIntersectingObject(Personaje.class);
        if(this.getX() == 0)
           getWorld().removeObject(this); 
        if(otro != null)      
           realiza();     
    }    
    
    /**
     * Este método esta redefinido en la clase para para su implementacion segun sea el caso.
     */
    public void realiza()
    {
        ((Mundo)getWorld()).pierdeVida2();
    }
}
